/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fisica;

import hibernate.Sesion;
import hibernate.objeto.AntecedentePersonal;
import hibernate.objeto.Cie9mc;
import java.util.Date;
import java.util.Vector;
import org.hibernate.Query;
import presentacion.utilidad.Paginador;

/**
 *
 * @author Administrador
 */
public class AntecedentePersonalFisica extends CapaFisica {

    /**
     * Retorna el objeto AntecedentePersonal según el ID.
     *
     * @param idAntecedentePersonal El id del objeto AntecedentePersonal
     * @return El objeto AntecedentePersonal consultado, null si no existe
     */
    public static AntecedentePersonal getAntecedentePersonalPorId(
            int idAntecedentePersonal) {
        Query q = Sesion.sesion.createQuery(
                "from AntecedentePersonal " +
                "where idAntecedentePersonal = " + idAntecedentePersonal
                );

        return (AntecedentePersonal) getObjeto(q);
    }

    /**
     * Retorna el vector de objetos AntecedentePersonal según el id del paciente.
     *
     * @param idPaciente El id del paciente consultado
     * @return El vector de objetos AntecedentePersonal consultado, null si no
     * existe
     */
    public static Vector<AntecedentePersonal>
            getVectorAntecedentePersonalPorIdPaciente(int idPaciente) {
        Query q = Sesion.sesion.createQuery(
                "select pers from AntecedentePersonal as pers " +
                "where pers.antecedente.paciente.idPaciente = " + idPaciente
                + " order by pers.fechaAntecedentePersonal desc");

        Paginador.paginar(q);

        return getVectorObjetos(q);
    }

    /**
     * Retorna el vector de objetos AntecedentePersonal según el id antecedente.
     *
     * @param idAntecedente El id del antecedente asociado
     * @return El vector de objetos AntecedentePersonal consultado, null si no
     * existe
     */
    public static Vector<AntecedentePersonal>
            getVectorAntecedentePersonalPorIdAntecedente(int idAntecedente) {
        Query q = Sesion.sesion.createQuery(
                "select ant_pers from AntecedentePersonal as ant_pers " +
                "where ant_pers.antecedente.idAntecedente = " + idAntecedente
                );

        return getVectorObjetos(q);
    }

    /**
     * Retorna el objeto antecedente por fecha y cie9mc
     *
     * @param fecha La fecha
     * @param cie9mc El cie9mc
     * @return El objeto AntecedentePersonal consultado, null si no existe
     */
    public static AntecedentePersonal getAntecedentePersonalPorCie9mc(Cie9mc cie9mc) {
        Query q = Sesion.sesion.createQuery(
                "from AntecedentePersonal " +
                "where cie9mc.codigoCie9mc = '" + cie9mc.getCodigoCie9mc() + "'"
                );

        return (AntecedentePersonal) getObjeto(q);
    }

}